Aspectual Collaborations: Combining Modules and Aspects
نویسندگان
چکیده
Complex behavior often resists clean modularization in object-oriented languages. Aspectoriented programming tackles this problem by providing ¤exible module boundaries that can span and partition classes. However, in order to achieve this ¤exibility, valuable modularity mechanisms, such as encapsulation and external composition, are lost. The ability to separately compile or reason about a modular unit is also compromised. We propose that this tradeoff is not necessary, and that by expressing aspects as part of our modules, we can restore lost modular properties while maintaining aspectual features. As a concrete demonstration, we present the main features of Aspectual Collaborations, and show how these interact to combine modularity with aspectual behavior. The expressiveness of Aspectual Collaborations, AspectJ, and Hyper/J are compared using a challenge problem, allowing us to estimate the effectiveness of the approach.
منابع مشابه
Combining Aspects and Modules Summary by Chosen Excerpts
We claim that it is not only possible – but also bene£cial – to combine powerful module constructs with aspect-oriented programming. By tempering the power of AOP with encapsulation boundaries maintained by a module system, the desirable qualities of both can be achieved, while tempering their respective weaknesses. Modules and Aspects are different approaches to a common goal of constructing l...
متن کاملCombining Aspects and Modules
Modules and aspects are different approaches to a common goal of constructing large, complex software quickly. Unfortunately, neither is solely sufficient. We demonstrate that the differences between modules and aspects are not irreconcilable, and that a carefully crafted module system can cater to aspect-oriented features. We show that it is possible to combine the software-engineering feature...
متن کاملConnectors for Reusable Aspects
Aspect oriented programming AOP controls tangling of concerns by isolating aspects that cross cut each other into building blocks Component based programming CBP supports software development by isolating reusable building blocks that can be assembled and connected in many di erent ways We show how AOP and CBP can be integrated by introducing a new component construct for programming class coll...
متن کاملProgramming with Aspectual Components
Aspect-oriented programming (AOP) controls tangling of concerns by isolating aspects that cross-cut each other into building blocks. Component-based programming (CBP) supports software development by isolating reusable building blocks that can be assembled and connected in many different ways. We show how AOP and CBP can be integrated by introducing a new component construct for programming cla...
متن کاملA quantitative and qualitative assessment of aspectual feature modules for evolving software product lines
Feature-Oriented Programming (FOP) and Aspect-Oriented Programming (AOP) are programming techniques based on composition mechanisms, called refinements and aspects, respectively. These techniques are assumed to be good variability mechanisms for implementing Software Product Lines (SPLs). Aspectual Feature Modules (AFM) is an approach that combines advantages of feature modules and aspects to i...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Comput. J.
دوره 46 شماره
صفحات -
تاریخ انتشار 2003